home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / earcd / phase5 / ppcrelease / fd2inline / makefile.in < prev    next >
Makefile  |  1998-02-21  |  10KB  |  281 lines

  1. srcdir =    @srcdir@
  2. VPATH =        @srcdir@
  3.  
  4. prefix =    @prefix@
  5. exec_prefix =    @exec_prefix@
  6.  
  7. bindir =    $(exec_prefix)/bin
  8. libdir =    $(exec_prefix)/lib
  9. incdir =    $(prefix)/include
  10. guidedir =    $(prefix)/guide
  11.  
  12. INSTALL =    @INSTALL@
  13. INSTALL_PROGRAM = @INSTALL_PROGRAM@ -s
  14. INSTALL_DATA =    @INSTALL_DATA@
  15.  
  16. SHELL =        /bin/sh
  17. CC =        @CC@
  18. AR =        ar
  19. RM =        rm -rf
  20. CP =        cp -a
  21. MAKEINFO =    makeinfo
  22. LHA =        lha -mraxe
  23. MV =        mv
  24. STRIP =        strip
  25. TAR =        tar -vz
  26. RANLIB =    @RANLIB@
  27. AWK =        @AWK@
  28. DEFS =        @DEFS@
  29. LIBS =        @LIBS@
  30. CFLAGS =    @CFLAGS@
  31. LDFLAGS =    @LDFLAGS@
  32. PROTECT =    /c/protect
  33.  
  34. # Used when building fd2inline, fd2inline.guide and the archives.
  35. VERSION =    1.11
  36.  
  37. FD_DIR =    $(prefix)/os-lib/fd
  38. OS_INC_DIR =    $(prefix)/os-include
  39.  
  40. OUR_CFLAGS =    $(DEFS) -Wall -Wstrict-prototypes '-DVERSION="$(VERSION)"' -resident $(CFLAGS)
  41.  
  42. # Pseudo-targets.
  43. BUILD_INLINES =    stmp-built-inlines
  44. BUILD_PRAGMAS =    stmp-built-pragmas
  45. BUILD_PROTOS =    stmp-built-protos
  46. BUILD_LIBS =    stmp-built-libs
  47. BUILD_PPCINLINES =    stmp-built-ppcinlines
  48. BUILD_PPCPRAGMAS =    stmp-built-ppcpragmas
  49. BUILD_PPCPROTOS     =    stmp-built-ppcprotos
  50.  
  51. # List of linker libraries to build. Each entry is INCBASE!LIBBASE (see below).
  52. NONSTD_LIBS =    muimaster!mui ums!ums dospath!dospath \
  53.         screennotify!screennotify wbstart!wbstart
  54.  
  55. # Archive names.
  56. SRC_ARCHIVE_LHA = fd2inline-$(VERSION)-src.lha
  57. SRC_ARCHIVE_TGZ = fd2inline-$(VERSION)-src.tgz
  58. BIN_ARCHIVE =    fd2inline-$(VERSION)-bin.lha
  59.  
  60. # Used when building archives
  61. TMP_DIR =    /tmp
  62. TMP_SUBDIR =    fd2inline-$(VERSION)
  63.  
  64. # Flags to pass to submake.
  65. FLAGS_TO_PASS =    "CC=$(CC)" \
  66.         "AWK=$(AWK)" \
  67.         "RM=$(RM)" \
  68.         "AR=$(AR)" \
  69.         "RANLIB=$(RANLIB)" \
  70.         "OS_INC_DIR=$(OS_INC_DIR)" \
  71.         "FD_DIR=$(FD_DIR)"
  72.  
  73. all:        fd2inline $(BUILD_INLINES) $(BUILD_PRAGMAS) $(BUILD_PROTOS) $(BUILD_LIBS) $(BUILD_PPCINLINES) $(BUILD_PPCPRAGMAS) $(BUILD_PPCPROTOS) guide
  74.  
  75. fd2inline:    fd2inline.c
  76.         $(CC) $(OUR_CFLAGS) $(LDFLAGS) -o fd2inline $(srcdir)/fd2inline.c $(LIBS)
  77.         if [ -f $(PROTECT) ]; then $(PROTECT) fd2inline +p; else true; fi
  78.  
  79. install:    all
  80.         $(INSTALL_PROGRAM) fd2inline $(bindir)/fd2inline
  81.         if [ -f $(PROTECT) ]; then \
  82.             (cd $(bindir); $(PROTECT) fd2inline +p); \
  83.         else true; \
  84.         fi
  85.         if [ -d $(incdir)/inline ]; then true; else mkdir $(incdir)/inline; fi
  86.         $(INSTALL_DATA) $(srcdir)/include/inline-src/*.h $(incdir)/inline
  87.         $(INSTALL_DATA) include/inline/*.h $(incdir)/inline
  88.         if [ -d $(incdir)/pragmas ]; then true; else mkdir $(incdir)/pragmas; fi
  89.         $(INSTALL_DATA) include/pragmas/*.h $(incdir)/pragmas
  90.         if [ -d $(incdir)/proto ]; then true; else mkdir $(incdir)/proto; fi
  91.         $(INSTALL_DATA) $(srcdir)/include/proto-src/*.h $(incdir)/proto
  92.         $(INSTALL_DATA) include/proto/*.h $(incdir)/proto
  93.         libs=`echo lib/lib*.a` ; if [ "lib/lib*.a" != "$${libs}" ]; then \
  94.           $(INSTALL_DATA) lib/lib*.a $(libdir); \
  95.         else true; fi
  96.         libs=`echo lib/libb/lib*.a` ; if [ "lib/libb/lib*.a" != "$${libs}" ]; then \
  97.           $(INSTALL_DATA) lib/libb/lib*.a $(libdir)/libb; \
  98.         else true; fi
  99.         libs=`echo lib/libb32/libm020/lib*.a` ; if [ "lib/libb32/libm020/lib*.a" != "$${libs}" ]; then \
  100.           $(INSTALL_DATA) lib/libb32/libm020/lib*.a $(libdir)/libb32/libm020; \
  101.         else true; fi
  102.         $(INSTALL_DATA) fd2inline.guide $(guidedir)
  103.  
  104. dist:        all
  105.         # Create a temporary location.
  106.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR) ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR); fi
  107.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR)/include ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR)/include; fi
  108.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR)/lib ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR)/lib; fi
  109.         # Copy the source directory to it.
  110.         ( \
  111.             cd $(srcdir); \
  112.             $(CP) include/inline-src $(TMP_DIR)/$(TMP_SUBDIR)/include; \
  113.             $(CP) include/proto-src $(TMP_DIR)/$(TMP_SUBDIR)/include; \
  114.             $(CP) lib/Makefile.in lib/splitasm.awk $(TMP_DIR)/$(TMP_SUBDIR)/lib; \
  115.             $(CP) manifests patches configure* COPYING fd2inline.c \
  116.                 fd2inline.texi install.sh Makefile.in \
  117.                 makepragmas.awk Product-Info \
  118.                 $(TMP_DIR)/$(TMP_SUBDIR) \
  119.         )
  120.         # Create the source archives.
  121.         ( \
  122.             cd $(TMP_DIR); \
  123.             $(LHA) a $(SRC_ARCHIVE_LHA) $(TMP_SUBDIR) \
  124.         )
  125.         $(RM) $(SRC_ARCHIVE_LHA)
  126.         $(CP) $(TMP_DIR)/$(SRC_ARCHIVE_LHA) .
  127.         $(RM) $(TMP_DIR)/$(SRC_ARCHIVE_LHA)
  128.         $(TAR) -cf $(SRC_ARCHIVE_TGZ) -C $(TMP_DIR) $(TMP_SUBDIR)
  129.         # Reorganize the temporary location.
  130.         ( \
  131.             cd $(TMP_DIR)/$(TMP_SUBDIR)/include; \
  132.             $(MV) inline-src inline; \
  133.             $(MV) proto-src proto; \
  134.             $(RM) ../lib/* \
  135.         )
  136.         # Copy the build directory to the temporary location.
  137.         $(CP) include/inline include/pragmas include/proto $(TMP_DIR)/$(TMP_SUBDIR)/include
  138.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR)/bin ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR)/bin; fi
  139.         $(CP) fd2inline $(TMP_DIR)/$(TMP_SUBDIR)/bin
  140.         $(STRIP) $(TMP_DIR)/$(TMP_SUBDIR)/bin/fd2inline
  141.         if [ -f $(PROTECT) ]; then \
  142.             (cd $(TMP_DIR)/$(TMP_SUBDIR)/bin; $(PROTECT) fd2inline +p); \
  143.         else true; \
  144.         fi
  145.         $(CP) lib/lib*.a $(TMP_DIR)/$(TMP_SUBDIR)/lib
  146.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR)/lib/libb ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR)/lib/libb; fi
  147.         $(CP) lib/libb/lib*.a $(TMP_DIR)/$(TMP_SUBDIR)/lib/libb
  148.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR)/lib/libb32 ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR)/lib/libb32; fi
  149.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR)/lib/libb32/libm020 ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR)/lib/libb32/libm020; fi
  150.         $(CP) lib/libb32/libm020/lib*.a $(TMP_DIR)/$(TMP_SUBDIR)/lib/libb32/libm020
  151.         if [ -d $(TMP_DIR)/$(TMP_SUBDIR)/guide ]; then true; else mkdir $(TMP_DIR)/$(TMP_SUBDIR)/guide; fi
  152.         $(CP) fd2inline.guide $(TMP_DIR)/$(TMP_SUBDIR)/guide
  153.         # Create the binary archive.
  154.         ( \
  155.             cd $(TMP_DIR); \
  156.             $(LHA) a $(BIN_ARCHIVE) $(TMP_SUBDIR)/ bin guide include lib COPYING \
  157.         )
  158.         $(RM) $(BIN_ARCHIVE)
  159.         $(CP) $(TMP_DIR)/$(BIN_ARCHIVE) .
  160.         $(RM) $(TMP_DIR)/$(BIN_ARCHIVE)
  161.         $(RM) $(TMP_DIR)/$(TMP_SUBDIR)
  162.  
  163. $(BUILD_INLINES):    fd2inline
  164.         if [ -d include ]; then true; else mkdir include; fi
  165.         if [ -d include/inline ]; then true; else mkdir include/inline; fi
  166.         for fd in $(FD_DIR)/*.fd; do \
  167.             rootname=`basename $$fd .fd | sed "s:_lib$$::"`; \
  168.             if [ "$${rootname}" = "mathffp" -o "$${rootname}" = "mathtrans" ]; then \
  169.                 continue; \
  170.             fi; \
  171.             echo "making include/inline/$$rootname.h..."; \
  172.             ./fd2inline $$fd $(OS_INC_DIR)/clib/$${rootname}_protos.h -o include/inline/$$rootname.h; \
  173.         done
  174.         touch $(BUILD_INLINES)
  175.  
  176. $(BUILD_PPCINLINES):    fd2inline
  177.         if [ -d include ]; then true; else mkdir include; fi
  178.         if [ -d include/ppcinline ]; then true; else mkdir include/ppcinline; fi
  179.         for fd in $(FD_DIR)/*.fd; do \
  180.             rootname=`basename $$fd .fd | sed "s:_lib$$::"`; \
  181.             if [ "$${rootname}" = "mathffp" -o "$${rootname}" = "mathtrans" ]; then \
  182.                 continue; \
  183.             fi; \
  184.             echo "making include/ppcinline/$$rootname.h..."; \
  185.             ./fd2inline $$fd $(OS_INC_DIR)/clib/$${rootname}_protos.h -powerup -o include/ppcinline/$$rootname.h; \
  186.         done
  187.         touch $(BUILD_PPCINLINES)
  188.  
  189. $(BUILD_PRAGMAS):    $(srcdir)/makepragmas.awk
  190.         if [ -d include ]; then true; else mkdir include; fi
  191.         if [ -d include/pragmas ]; then true; else mkdir include/pragmas; fi
  192.         for fd in $(FD_DIR)/*.fd; do \
  193.             rootname=`basename $$fd .fd | sed "s:_lib$$::"`; \
  194.             if [ "$${rootname}" = "mathffp" -o "$${rootname}" = "mathtrans" ]; then \
  195.                 continue; \
  196.             fi; \
  197.             echo "making include/pragmas/$${rootname}_pragmas.h..."; \
  198.             $(AWK) -f $(srcdir)/makepragmas.awk -v PRAGMAS=$$rootname >include/pragmas/$${rootname}_pragmas.h; \
  199.         done
  200.         touch $(BUILD_PRAGMAS)
  201.  
  202. $(BUILD_PPCPRAGMAS):    fd2inline
  203.         if [ -d include ]; then true; else mkdir include; fi
  204.         if [ -d include/ppcpragmas ]; then true; else mkdir include/ppcpragmas; fi
  205.         for fd in $(FD_DIR)/*.fd; do \
  206.             rootname=`basename $$fd .fd | sed "s:_lib$$::"`; \
  207.             if [ "$${rootname}" = "mathffp" -o "$${rootname}" = "mathtrans" ]; then \
  208.                 continue; \
  209.             fi; \
  210.             echo "making include/ppcpragmas/$${rootname}_pragmas.h..."; \
  211.             ./fd2inline --pragma --powerup $$fd $(OS_INC_DIR)/clib/$${rootname}_protos.h -o include/ppcpragmas/$${rootname}_pragmas.h; \
  212.         done
  213.         touch $(BUILD_PPCPRAGMAS)
  214.  
  215. $(BUILD_PROTOS):    fd2inline
  216.         if [ -d include ]; then true; else mkdir include; fi
  217.         if [ -d include/proto ]; then true; else mkdir include/proto; fi
  218.         for fd in $(FD_DIR)/*.fd; do \
  219.             rootname=`basename $$fd .fd | sed "s:_lib$$::"`; \
  220.             if [ -f $(srcdir)/include/proto-src/$$rootname.h ]; then \
  221.                 continue; \
  222.             fi; \
  223.             echo "making include/proto/$$rootname.h..."; \
  224.             ./fd2inline --proto $$fd -o include/proto/$$rootname.h; \
  225.         done
  226.         touch $(BUILD_PROTOS)
  227.  
  228. $(BUILD_PPCPROTOS):    fd2inline
  229.         if [ -d include ]; then true; else mkdir include; fi
  230.         if [ -d include/ppcproto ]; then true; else mkdir include/ppcproto; fi
  231.         for fd in $(FD_DIR)/*.fd; do \
  232.             rootname=`basename $$fd .fd | sed "s:_lib$$::"`; \
  233.             if [ -f $(srcdir)/include/proto-src/$$rootname.h ]; then \
  234.                 continue; \
  235.             fi; \
  236.             echo "making include/ppcproto/$$rootname.h..."; \
  237.             ./fd2inline --proto $$fd --powerup -o include/ppcproto/$$rootname.h; \
  238.         done
  239.         touch $(BUILD_PROTOS)
  240.  
  241. $(BUILD_LIBS):    fd2inline
  242.         for bases in $(NONSTD_LIBS); do \
  243.             incbase=`echo $$bases | sed "s:!.*$$::"`; \
  244.             libbase=`echo $$bases | sed "s:^.*!::"`; \
  245.             if [ -f include/inline/$$incbase.h ]; then \
  246.                 echo "making lib$$libbase.a..."; \
  247.                 (cd lib; $(MAKE) $(FLAGS_TO_PASS) INCBASE=$$incbase LIBBASE=$$libbase); \
  248.             else true; fi; \
  249.         done
  250.         touch $(BUILD_LIBS)
  251.  
  252. guide:        fd2inline.guide
  253.  
  254. fd2inline.guide:    $(srcdir)/fd2inline.texi
  255.         if [ -f version.texi ]; then true; else echo "@set version $(VERSION)" >version.texi; fi
  256.         $(MAKEINFO) $(srcdir)/fd2inline.texi -o fd2inline.guide
  257.  
  258. # Make a linker library with stubs, if for some reason one can't use
  259. # inline headers. This requires two arguments on "make" commandline:
  260. #
  261. # INCBASE: base name of the includes (muimaster for MUI etc).
  262. # LIBBASE: base name of the library (mui for MUI etc).
  263.  
  264. alllib:        fd2inline
  265.         if [ "$(INCBASE)" = "" -o "$(LIBBASE)" = "" ]; then \
  266.             echo "Require two arguments: INCBASE and LIBBASE"; \
  267.         else \
  268.             (cd lib; $(MAKE) $(FLAGS_TO_PASS) INCBASE=$(INCBASE) LIBBASE=$(LIBBASE)); \
  269.         fi
  270.  
  271. clean:
  272.         $(RM) version.texi *.o *~ *!
  273.         (cd lib; $(MAKE) $(FLAGS_TO_PASS) clean)
  274.  
  275. clobber:    clean
  276.         $(RM) fd2inline fd2inline.guide \
  277.             include/inline include/pragmas include/proto \
  278.             $(BUILD_INLINES) $(BUILD_PRAGMAS) $(BUILD_PROTOS) $(BUILD_LIBS) \
  279.             $(SRC_ARCHIVE_LHA) $(SRC_ARCHIVE_TGZ) $(BIN_ARCHIVE)
  280.         (cd lib; $(MAKE) $(FLAGS_TO_PASS) clobber)
  281.